#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
struct node{
    vector<int> s;
    int d;
}N[maxn];

bool cmp(const int& l, const int& r){
    return N[l].d < N[r].d;
}

int n, P;
int D(int i){
    node& ans = N[i];
    if(ans.s.empty()) return 1;
    ans.d = 0;
    for (int j = 0; j < ans.s.size(); ++j) {
        int id = ans.s[j];
        N[id].d = D(id);
    }
    sort(ans.s.begin(), ans.s.end(), cmp);
    int num = (ans.s.size()*P-1)/100+1;
    for (int j = 0; j < num; ++j) {
        int id = ans.s[j];
        ans.d += N[id].d;
    }
    return ans.d;
}
int main() {
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);
    memset(N, 0, sizeof(N));
    while(cin >> n >> P && n && P){
        for (int i = 1; i <= n; ++i) {
            int f; cin >> f;
            N[f].s.push_back(i);
        }

        cout << D(0) << endl;
    }
    return 0;
}